package com.hzhc.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.hzhc.dto.UserDto;
import com.hzhc.entity.CarInfo;
import com.hzhc.utils.ResultUtil;
import com.hzhc.vo.CarInfoVo;
import com.hzhc.vo.CompanyInfoVo;
import org.apache.poi.ss.formula.functions.T;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.List;

/**
 * <p>
 * 车辆信息 服务类
 * </p>
 *
 * @author 功不唐捐
 * @since 2024-05-23
 */
public interface CarInfoService extends IService<CarInfo> {
    ResultUtil<T> selectCarInNo(CarInfo carInfo);

    List<CarInfo> getList(Page<CarInfo> pagination, CarInfoVo vo);

    ResultUtil<T> addRet(CarInfo vo);

    ResultUtil<T> updateRet(CarInfo vo);

    ResultUtil<T> delCarInfo(CarInfo carInfo);


    List<CompanyInfoVo> getCarTeamPage(Page<CompanyInfoVo> page, CompanyInfoVo vo);

    List<CarInfo> getCarJsonPage(CarInfoVo vo, Page<CarInfo> page);
    List<CarInfoVo> getYZSCarJsonPage(CarInfoVo vo, Page<CarInfoVo> page);

    List<CarInfo> getCarNoList(CarInfo car);

    List<CarInfoVo> getSgjYwCarList( CarInfoVo vo);

    void checkCarNo(String carNo,Long companyId);
    List<CarInfoVo> checkCarNoS(String carNo,Long companyId);

    ResultUtil<T> checkIsBlack(CarInfo carInfo);

    CarInfo getByCarNo(String carNo);
    List<CarInfo> getByCarNos(String carNo,String companyName);
    ResultUtil<T> deleteById(CarInfoVo vo);

    ResultUtil<T> carNoCheck(CarInfo carInfo);

    ResultUtil<T> addRet1(CarInfo info);

    List<CarInfoVo> getCarListByVeh(CarInfoVo vo);

    ResultUtil<T> importCarList(HttpServletRequest request, List<CarInfo> carList);
    ResultUtil<T> importYZSCarList(HttpServletRequest request, List<CarInfo> carList);

    void exportCarFile(HttpServletRequest request, HttpServletResponse response, String exportExcelPath);

    ResultUtil<List<CarInfoVo>> CarUpload(UserDto user, MultipartFile file);

    void exportYzsCarFile(HttpServletRequest request, HttpServletResponse response, String exportExcelPath);

    ResultUtil<List<CarInfoVo>> CarYzsUpload(UserDto user, MultipartFile file);

    List<CarInfo> getCarNoByCom(CarInfo info);

}
